package teleware.soe.core.enums;

import teleware.soe.core.annotation.OperationMapping;
import teleware.soe.core.annotation.ResourceMapping;

import java.lang.annotation.Annotation;

/**
 * 隐射类型枚举
 *
 * @author :hongsw
 * @date :2020-12-11 15:40
 */
public enum MappingEnum {
    /**
     * 资源注解
     */
    Resource(ResourceMapping.class, "teleware.soe.core.strategy.impl.ResourceMappingStrategy"),
    /**
     * 操作注解
     */
    Operation(OperationMapping.class, "teleware.soe.core.strategy.impl.OperatingMappingStrategy");
    /**
     * 注解类
     */
    private final Class<? extends Annotation> annotationClass;
    /**
     * 策略实现全路径类名
     */
    private final String strategyImplFullPathClassName;

    MappingEnum(Class<? extends Annotation> annotationClass, String strategyImplFullPathClassName) {
        this.annotationClass = annotationClass;
        this.strategyImplFullPathClassName = strategyImplFullPathClassName;
    }

    public Class<? extends Annotation> getAnnotationClass() {
        return annotationClass;
    }

    public String getStrategyImplFullPathClassName() {
        return strategyImplFullPathClassName;
    }
}
